import { login, getRoleDetail } from '@/api/user'

// 存放状态数据
const state = {
  token: localStorage.getItem('token') || '',
  userInfo: {}

}
// 修改 state
const mutations = {
  setToken(state, data) {
    state.token = data
    // 本地储存数据持久化
    localStorage.setItem('token', data)
  },

  clearUserInfo(state) {
    console.log('state', state)
    state.token = ''
    state.userInfo = {}
    localStorage.removeItem('token')
    // removeToken()
  },
  setUserInfo(state, data) {
    state.userInfo = data
    // console.log('userInfo', data)
  }
}
// 异步
const actions = {
  async login(store, data) {
    console.log(data, '请求数据')
    // 发送请求,
    const res = await login(data)
    // 拿到了token,因为在请求那里使用了拦截器，可以直接拿到token值
    // 存储当时登录发送请求的时间，在请求拦截那里会用到
    localStorage.setItem('loginTime', Date.now())
    // console.log('222', res)
    // 通过mutations存入state
    store.commit('setToken', res.data.jwt)
    // store.commit('setToken', res.jwt)
  },
  // 登录后存储角色信息
  async getRoleDetail(store) {
    const res = await getRoleDetail()
    store.commit('setUserInfo', res.data)
  },
  // 退出登录后清除角色信息
  async logout(store) {
    store.commit('clearUserInfo')
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
